package tw.edu.tku.im.maze.database;

import java.sql.*;

public class sql {
   public static void main(String[] args) {
   
      try {
      String address = "jdbc:sqlserver://localhost:1433";
      //驱动类型＋目标数据库ip＋数据库端口
      String user="sa";//数据库用户密码
      String passwd="1022";//口令
      String database = "Maze";//目标数据库
      //Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();//驱动申明
      Connection con = DriverManager.getConnection(address,user,passwd);//建立链接
      con.setCatalog(database);//确定目标数据库
      Statement smt =
            con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
      //建立描述，设定结果集支持滚动光标且敏感，不可编辑
      

      //
      // Create a CallableStatement to execute the CREATE_USERS procedure
      // 
      CallableStatement stmt = con.prepareCall("{call usp_login(?, ?)}");

      //
      // Defines all the required parameter values.
      // 
      stmt.setString(1, "test123");
      stmt.setString(2, "123");
      //System.out.println(stmt.execute());
      ResultSet rs1 = stmt.executeQuery();
      if(rs1.next()) {
         System.out.println(rs1.getString(1));
         System.out.println(rs1.getString(2));
      }
      
      
      String selCode = "SELECT userID,password FROM users";//查询语句
      ResultSet rs = smt.executeQuery(selCode);//结果集
      if(rs.next()) {//从第一条往后依次取结果集中的记录
         String userId = rs.getString(1);//等同rs.getString("userId")，即第一个字段数据
         String userName = rs.getString(2);//同上，第二个字段，全部取其为String类型
         //若是中文字段，一般需要转码
         //userName = new String(userName.getBytes("ISO-8859-1"),"gb2312");
         System.out.println(userId+":"+userName);//输出此条记录的查询结果
      }
      rs.close();//释放资源
      smt.close();
      con.close();}
      catch(Exception e) {
        System.out.println(e);//捕捉异常
      }
   }
}
